package main

import "fmt"

func sum(s []int, c chan int) {
	sum := 0
	for _, v := range s {
		sum += v
	}
	c <- sum // 将和送入 c
}

func main() {
	s := []int{7, 2, 8, -9, 4, 0}

	c := make(chan int)
	go sum(s[:len(s)/2], c) // 这里是发送后3个元素
	go sum(s[len(s)/2:], c) // 这里是发送前3个元素
	x, y := <-c, <-c        // 从 c 中接收 顺序接收  先进先接收 x = -9+4 = -5  y = 7 + 2+ 8 = 17

	fmt.Println(x, y, x+y)

	ch := make(chan int, 2)
	ch <- 1
	ch <- 2
	ch <- 3
	fmt.Println(<-ch)
	fmt.Println(<-ch)
	fmt.Println(<-ch)
}

// chan 是一个通道 在方法中生命一个数值
